﻿// <copyright file="ILogProvider.cs" company="Ecole Normale Supérieure">
// Released under GPLv2
// </copyright>
// <summary>Contains the log provider interface. see below.</summary>

namespace Sqwarea.Persistence
{
    using System.Collections.Generic;

    /// <summary>
    /// Contains the log provider interface.
    /// </summary>
    public interface ILogProvider
    {
        /// <summary>
        /// Saves a log.
        /// </summary>
        /// <param name="log">The log to be saved.</param>
        void StoreLog(Log log);

        /// <summary>
        /// Deletes the logs given in parameter from the Log table
        /// All given logs must have the same KingId
        /// </summary>
        /// <param name="logs">list of logs to be removed from the Table</param>
        void DeleteLogs(IEnumerable<Log> logs);
        
        /// <summary>
        /// Gets the logs of kingId user.
        /// </summary>
        /// <param name="kingId">Id of the required king</param>
        /// <returns>See summary</returns>
        IEnumerable<Log> GetLogs(long kingId);
    }
}
